iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
Software Development

初學軟體開發系列 第 5

Day05-Dart語言學習

  • 分享至 

  • xImage
  •  

今天的學習內容
1.基本資料型態
2.空安全是甚麼?怎麼用?
4.類別的繼承和覆寫

基本型態
裡面有數值、字串、布林值,特別的是沒有float型態。

空安全
說明:為了要避免變數裡的值是空的情況。
舉例來說,要儲存三位考生的成績,結果有一人缺考,成績是空的,程式就無法執行,造成程式異常終止,也稱閃退。
如何使用: 在宣告變數時,在形態後面加?。
int? x;
類別
類別的優點可以保護資料以及繼承。前者避免外部的程式碼使用類別裏頭的資料,而是透過類別的方法來取得。後者是可以直接繼承類別,又稱父子類別,提取別的類別叫子類別,被提取的稱父類別。
繼承使用方法:

class 類別名稱 extends 父類別名稱{
}

舉例:

class Person{
  late String name;
  
  Person(String name){
    this.name=name;
  }
  
  void setName(String name){
    this.name=name;
  }
  String getName(){
    return name;
  }
}
  
class Student extends Person{
  late int score;
  
  Student(String name,this.score):super(name);
  
  void setScore(int score){
    this.score=score;
  }
  
  int getScore(){
    return score;
  }
}

這樣子Student就可以繼承Person裡的物件。

再來是覆寫
可以改變原先的方法的結果
要使用編譯註解@override
以下範例:

void main() {
  Student s=Student('裡小二',90);
  s.setName('李小明');
  print('${s.getName()}${s.getScore()}');
  
}

class Person{
  late String name;
  
  Person(this.name);
  
  void setName(String name){
    this.name=name;
  }
  String getName(){
    return name;
  }
}
  
class Student extends Person{
  late int score;
  
  Student(String name,this.score):super(name);
  
  void setScore(int score){
    this.score=score;
  }
  
  int getScore(){
    return score;
  }
  
  @override
  void setName(String name){
    super.setName('學生'+name);
  }
}

輸出結果:學生李小明90
如果少了覆寫,輸出結果為:李小明90

今日總結
今天比較麻煩的是建構子的使用,思索了一下子才搞懂,還有set跟get方法,之前學Java沒有很仔細的理解。


上一篇
Day04-Dart語言怎麼學?
下一篇
Day06-Dart語言(函式、參數)
系列文
初學軟體開發31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言